home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9611 / 000006_owner-urn-ietf _Sun Nov 3 01:56:31 1996.msg < prev    next >
Internet Message Format  |  1997-02-19  |  9KB

  1. Received: (from daemon@localhost) by services.bunyip.com (8.6.10/8.6.9) id BAA15524 for urn-ietf-out; Sun, 3 Nov 1996 01:56:31 -0500
  2. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1]) by services.bunyip.com (8.6.10/8.6.9) with SMTP id BAA15517 for <urn-ietf@services.bunyip.com>; Sun, 3 Nov 1996 01:56:23 -0500
  3. Received: from void.ncsa.uiuc.edu by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  4.         id AA16634  (mail destined for urn-ietf@services.bunyip.com); Sun, 3 Nov 96 01:56:20 -0500
  5. Received: (from liberte@localhost) by ncsa.uiuc.edu (8.7.6/8.7.3) id AAA25490; Sun, 3 Nov 1996 00:51:41 -0600 (CST)
  6. Date: Sun, 3 Nov 1996 00:51:41 -0600 (CST)
  7. From: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
  8. Message-Id: <199611030651.AAA25490@ncsa.uiuc.edu>
  9. To: Terry Allen <tallen@fsc.fujitsu.com>
  10. Cc: urn-ietf@bunyip.com
  11. Subject: Re: Names and Locations (was [URN] some comments)
  12. In-Reply-To: <199610312051.MAA10123@ishtar.fsc.fujitsu.com>
  13. References: <199610312051.MAA10123@ishtar.fsc.fujitsu.com>
  14. Sender: owner-urn-ietf@services.bunyip.com
  15. Precedence: bulk
  16. Reply-To: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
  17. Errors-To: owner-urn-ietf@bunyip.com
  18.  
  19. Daniel LaLiberte writes:
  20.  > | OK, what is a location?
  21.  > | ...  Is it the
  22.  > | domain name of the server, together with the path within the server?
  23.  > | That's getting closer to the abstraction that URLs provide.  Is the
  24.  > | location, in fact, the URL itself?
  25.  
  26. Terry Allen writes:
  27.  > No, the URL is neither the location nor the resource, but the
  28.  > name of a location, or a name of a location that may be resolved
  29.  > on the fly.  The location is not the resource; the name of the
  30.  > location is not the name of the resource.
  31.  
  32. On the face of it, this is sounding rather strange.  First, I agree
  33. that the URL is not the resource itself (who would say that it is?
  34. from your comment at the end, I think you think I said that).
  35.  
  36. Saying a URL is "the name of a location" is almost the same as "a URL
  37. identifies a location".  The extra indirection of going from URL to
  38. identifier to location, rather than URL to location, seems unnecessary,
  39. and perhaps it is irrelevant semantics.  What is relevant is that you
  40. guys make a distinction between URLs and URNs, and it is a
  41. distinction founded on a misunderstanding.  I've been trying to dig
  42. through to get to the heart of that misunderstanding.
  43.  
  44.  > | Consider caches.  The resolution of a URL via a cache proxy may find
  45.  > | the resource in the cache rather than in some remote server.  What is
  46.  > | "the location" of the resource in that case?
  47.  > 
  48.  > What is "the resource"?  Any copy of what you got back from resolution?
  49.  > then its location is both in the cache and on the remote server.
  50.  > Is it "the copy I got back from resolution"?  then its location
  51.  > is in the cache.
  52.  
  53. But the very same URL was used to retrieve the resource either from a
  54. cache or from a remote server.  So what "location" is the URL
  55. identifying when the resource actually lives in multiple places - the
  56. very same URL may be used to fetch the resource from any of those
  57. places?  Notice you first say that a URL identifies (or names) the
  58. location of a resource, and then we find out that there are really
  59. multiple locations identified by the URL.  But that is supposed to be
  60. the job of URNs.  So why do we need URNs?
  61.  
  62.  > | Here is an example of how what is thought of as a location really
  63.  > | turns out to *be* a name (as in persistent location).  Take a normal
  64.  > | http URL such as http://www.ncsa.uiuc.edu/.  Instead of using normal
  65.  > | HTTP to resolve the URL, or to look it up in a cache, let's set up a
  66.  > | NAPTR-based "http" naming authority.  Under that branch of the name
  67.  > | space, we could ask the appropriate DNS server to look up
  68.  > | 'www.ncsa.uiuc.edu' to find out where a server is currently located
  69.  > | and what "resolution protocols" are currently supported.
  70.  > 
  71.  > That is a coincidence of naming:  you made the name of the resource
  72.  > (qua URN) be the same as the name of its location.  But 
  73.  >    urn:http://www.ncsa.uiuc.edu/ 
  74.  > and 
  75.  >    url:http://www.ncsa.uiuc.edu/
  76.  > name two different things.
  77.  
  78. I used "http://www.ncsa.uiuc.edu/" for both, no "urn:" or "url:" for
  79. either.  (BTW, If "urn:" is optional, then
  80. "urn:http://www.ncsa.uiuc.edu/" has identically the same meaning - it
  81. is an equivalent identifier).  A client can resolve
  82. "http://www.ncsa.uiuc.edu/" using HTTP or using the NAPTR protocol, or
  83. something else.  This is the very same identifier, not two identifiers
  84. with the same character representation.  Calling it two identifiers
  85. and saying one is a name and the other is [the name of] a location is
  86. missing the whole point.
  87.  
  88. The point is a single identifier can, in fact, be resolved many
  89. different ways by clients.  Some ways are more direct (e.g. HTTP) and
  90. some are more indirect (e.g. NAPTR).  They are all resolution
  91. mechanisms.  They all result, eventually, in the resource, or whatever
  92. is being requested.
  93.  
  94.  
  95.  > | We don't need to create a new kind of identifier to make a URL
  96.  > | into a persistent location.
  97.  
  98.  > Which is not what you did in the example just given.
  99.  
  100. It is so.
  101.  
  102.  > You created a new name space and rules for using it that by design
  103.  > produce a name that looks like a URL which, when resolved, will
  104.  > give the same result.
  105.  
  106. The name space is just a vehicle for resolving the identifier.
  107. Consider how a cache creates a name space for looking up resources
  108. given http URLs (usually it's just a hash table, but imagine it
  109. creates a similar hierarchy to model DNS and filesystems within
  110. servers).  Would you claim that the cache is somehow making new
  111. identifiers?
  112.  
  113. Here is, perhaps, the missing point: The persistence of a name space
  114. is not a property of the identifiers - it is a property of the
  115. mechanism used to resolve the identifiers.
  116.  
  117. You seem to be saying that the persistence is a property of URNs, and
  118. thus names are obviously different from locations.  I am saying that
  119. the persistence of URNs is due to resolution mechanisms such as the
  120. NAPTR mechanism.  (It is also due to the naming authorities
  121. guaranteeing that the names will behave properly if the appropriate
  122. resolution mechanism is used.)
  123.  
  124. Since different mechanisms can be used to resolve the very same
  125. identifiers, and since some mechanisms might provide persistence while
  126. others do not, there is no point in distinguishing the identifiers as
  127. either names or locations.
  128.  
  129. There is nothing inherent in identifiers themselves that makes them have
  130. different properties, whether name-like or location-like.  It is how
  131. the identifiers are created and used that gives them those properties.
  132.  
  133. >From that standpoint, http URLs are different from new classes of
  134. identifiers that will be created under the URN name space(s).
  135. I certainly recognize that we need more persistence in the resolution
  136. process, and that is why we created the "path" resolution mechanism.
  137. (In fact, I believe the NAPTR mechanism doesn't go quite far enough,
  138. and agree with Larry in that regard.)
  139.  
  140. But it is not the identifiers themselves that need to be distinguished
  141. based on the properties of the resolution mechanism.  For one class of
  142. identifier, there might be two resolution mechanisms available, one
  143. supports persistence and the other does not.  So are the identifiers
  144. names or locations?  Irrelevant question.
  145.  
  146.  > | To summarize, both URLs and URNs have the following abstract
  147.  > | resolution process in common:
  148.  > | 1. Do some client-specific processing of the URI - maybe end there.
  149.  > | 2. Look at the scheme name of the URI.  If it says "URN:" drop it and repeat.
  150.  > 
  151.  > No, you have to branch into your "find URN" subprocess.  
  152.  
  153. You could handle everything with "URN:" prefix with the same process,
  154. but it is not required - you could just as well handle each URN
  155. subscheme differently.  Or you could handle parts of a single name
  156. space differently from the rest.
  157.  
  158.  > | 3. Look up the scheme in local table to find out what process should
  159.  > 
  160.  > The local table will be different for URLs and URNs, will it not?  
  161.  
  162. Not necessarily.  Each URL or URN scheme might have a different
  163. process associated with it, or we could use just one process for
  164. all schemes.  
  165.  
  166.  > |    be invoked.  E.g. news URIs may use NNTP, http URIs may use HTTP,
  167.  > |    cid URIs may use NAPTR-protocol.
  168.  > | 4. Invoke the process identified by step 3. 
  169.  > | 5. If error results, exit.
  170.  > | 6. If redirected to another URI, repeat whole process with that URI.
  171.  > | 
  172.  > | An alternative to steps 2 and 3 would use more than just the scheme
  173.  > | name to determine what process to invoke.  There are several other
  174.  > | varients possible in the whole process, and each client or each user
  175.  > | might do things differently.
  176.  > | 
  177.  > | I hope I've made my postion very clear regarding names, locations, and
  178.  > | the resolution process.
  179.  > 
  180.  > That you see no difference between objects and their locations?
  181.  
  182. I really don't see how you got that.  When did I talk about the
  183. difference between objects and their locations?
  184.  
  185. I see no difference between *names* and *locations* at least
  186. regarding the identifiers themselves.
  187.  
  188. --
  189. Daniel LaLiberte (liberte@ncsa.uiuc.edu)
  190. National Center for Supercomputing Applications
  191. http://union.ncsa.uiuc.edu/~liberte/